#pragma once
#include <string>
#include <vector>
#include <utility>
#include <iostream>
#include <fstream>

class OutputManager
{
private:
    int nowTime;
    int nowClient;
    int timeNum;
    int clientNum;
    int siteNum;

    std::vector<std::string> clientName;
    std::vector<std::string> siteName;

    std::vector<std::vector<std::vector<std::pair<int, int>>>> log;

public:
    OutputManager(int timeNum, int clientNum, int siteNum, const std::vector<std::string> &clientName, const std::vector<std::string> &siteName);
    void setTime(int timeID);
    void setClient(int clientID);
    void writeLog(int siteID, int flow);
    void writeLog(int timeID, int clientID, int siteID, int flow);
    void writeFile(std::string filePath);
    void clearOutputInfor();


    friend class DataManager;
    friend class OptimizerFineTunning;
};
